library(ggplot2)
library(reshape2)
library(dplyr)
library(tidyr)
library(GGally)
library(grid)
"%&%" = function(a,b) paste(a,b,sep="")
my.dir <- '/Volumes/im-lab/nas40t2/hwheeler/cross-tissue/'
out.dir <- '~/GitHub/GenArch/GenArchPaper/OTD_enrichment/'
Pull h2 estimate CI>0 genes for each tissue & rm .\d+ from ensid
for(tistype in c("Tissue-Specific","Tissue-Wide")){
tsfile <- my.dir %&% 'GTEx_' %&% tistype %&% '_local_h2_se_geneinfo_no_description.txt'
ts <- read.table(tsfile,sep='\t',header=T)
tislist <- scan(my.dir %&% 'GTEx_nine_tissues','c')
tislist <- gsub("-","",tislist)
tislist <- c("CrossTissue",tislist)
h2tislist <- "h2." %&% tislist
setislist <- "se." %&% tislist
geneinfo <- ts[,1:3]
for(i in seq_along(tislist)){
h2tis <- h2tislist[i]
setis <- setislist[i]
data <- ts %>% select(AssociatedGeneName, EnsemblGeneID, matches(h2tis), matches(setis)) %>% mutate(ensid=substr(EnsemblGeneID,1,15))
cidata <- data[data[,3]-data[,4]*2>0,] ##pull genes with non-zero confidence intervals
print(tislist[i] %&% " " %&% tistype %&% ": " %&% dim(cidata)[1] %&% " non-zero h2 CI genes")
write.table(cidata, file=out.dir %&% tislist[i] %&% "_" %&% tistype %&% "_non-zeroCIgenes_info.txt",quote=FALSE,row.names = FALSE)
write.table(cidata[,5], file=out.dir %&% tislist[i] %&% "_" %&% tistype %&% "_non-zeroCIgenes_ensid_list.txt",quote=FALSE,row.names = FALSE, col.names = FALSE)
write.table(cidata[,1], file=out.dir %&% tislist[i] %&% "_" %&% tistype %&% "_non-zeroCIgenes_gene_list.txt",quote=FALSE,row.names = FALSE, col.names = FALSE)
for(thresh in c(0,0.01,0.05,0.1)){
h2data <- data[data[,3]>thresh,] ##pull genes with h2 > thresh
print(tislist[i] %&% " " %&% tistype %&% ": " %&% dim(h2data)[1] %&% " h2 > " %&% thresh %&% " genes")
write.table(h2data, file=out.dir %&% tislist[i] %&% "_" %&% tistype %&% "_h2_" %&% thresh %&% "genes_info.txt",quote=FALSE,row.names = FALSE)
write.table(h2data[,5], file=out.dir %&% tislist[i] %&% "_" %&% tistype %&% "_h2_" %&% thresh %&% "genes_ensid_list.txt",quote=FALSE,row.names = FALSE, col.names = FALSE)
write.table(h2data[,1], file=out.dir %&% tislist[i] %&% "_" %&% tistype %&% "_h2_" %&% thresh %&% "genes_gene_list.txt",quote=FALSE,row.names = FALSE, col.names = FALSE)
}
}
}
## [1] "CrossTissue Tissue-Specific: 2938 non-zero h2 CI genes"
## [1] "CrossTissue Tissue-Specific: 17007 h2 > 0 genes"
## [1] "CrossTissue Tissue-Specific: 10282 h2 > 0.01 genes"
## [1] "CrossTissue Tissue-Specific: 5042 h2 > 0.05 genes"
## [1] "CrossTissue Tissue-Specific: 2715 h2 > 0.1 genes"
## [1] "AdiposeSubcutaneous Tissue-Specific: 207 non-zero h2 CI genes"
## [1] "AdiposeSubcutaneous Tissue-Specific: 17007 h2 > 0 genes"
## [1] "AdiposeSubcutaneous Tissue-Specific: 6908 h2 > 0.01 genes"
## [1] "AdiposeSubcutaneous Tissue-Specific: 2463 h2 > 0.05 genes"
## [1] "AdiposeSubcutaneous Tissue-Specific: 650 h2 > 0.1 genes"
## [1] "ArteryTibial Tissue-Specific: 306 non-zero h2 CI genes"
## [1] "ArteryTibial Tissue-Specific: 17007 h2 > 0 genes"
## [1] "ArteryTibial Tissue-Specific: 7779 h2 > 0.01 genes"
## [1] "ArteryTibial Tissue-Specific: 3126 h2 > 0.05 genes"
## [1] "ArteryTibial Tissue-Specific: 892 h2 > 0.1 genes"
## [1] "HeartLeftVentricle Tissue-Specific: 298 non-zero h2 CI genes"
## [1] "HeartLeftVentricle Tissue-Specific: 17007 h2 > 0 genes"
## [1] "HeartLeftVentricle Tissue-Specific: 7796 h2 > 0.01 genes"
## [1] "HeartLeftVentricle Tissue-Specific: 4012 h2 > 0.05 genes"
## [1] "HeartLeftVentricle Tissue-Specific: 1614 h2 > 0.1 genes"
## [1] "Lung Tissue-Specific: 223 non-zero h2 CI genes"
## [1] "Lung Tissue-Specific: 17007 h2 > 0 genes"
## [1] "Lung Tissue-Specific: 7143 h2 > 0.01 genes"
## [1] "Lung Tissue-Specific: 2738 h2 > 0.05 genes"
## [1] "Lung Tissue-Specific: 797 h2 > 0.1 genes"
## [1] "MuscleSkeletal Tissue-Specific: 434 non-zero h2 CI genes"
## [1] "MuscleSkeletal Tissue-Specific: 17007 h2 > 0 genes"
## [1] "MuscleSkeletal Tissue-Specific: 7371 h2 > 0.01 genes"
## [1] "MuscleSkeletal Tissue-Specific: 2356 h2 > 0.05 genes"
## [1] "MuscleSkeletal Tissue-Specific: 622 h2 > 0.1 genes"
## [1] "NerveTibial Tissue-Specific: 379 non-zero h2 CI genes"
## [1] "NerveTibial Tissue-Specific: 17006 h2 > 0 genes"
## [1] "NerveTibial Tissue-Specific: 7797 h2 > 0.01 genes"
## [1] "NerveTibial Tissue-Specific: 3491 h2 > 0.05 genes"
## [1] "NerveTibial Tissue-Specific: 1216 h2 > 0.1 genes"
## [1] "SkinSunExposed(Lowerleg) Tissue-Specific: 449 non-zero h2 CI genes"
## [1] "SkinSunExposed(Lowerleg) Tissue-Specific: 17007 h2 > 0 genes"
## [1] "SkinSunExposed(Lowerleg) Tissue-Specific: 8604 h2 > 0.01 genes"
## [1] "SkinSunExposed(Lowerleg) Tissue-Specific: 3589 h2 > 0.05 genes"
## [1] "SkinSunExposed(Lowerleg) Tissue-Specific: 1097 h2 > 0.1 genes"
## [1] "Thyroid Tissue-Specific: 442 non-zero h2 CI genes"
## [1] "Thyroid Tissue-Specific: 17007 h2 > 0 genes"
## [1] "Thyroid Tissue-Specific: 7757 h2 > 0.01 genes"
## [1] "Thyroid Tissue-Specific: 3141 h2 > 0.05 genes"
## [1] "Thyroid Tissue-Specific: 1010 h2 > 0.1 genes"
## [1] "WholeBlood Tissue-Specific: 490 non-zero h2 CI genes"
## [1] "WholeBlood Tissue-Specific: 17007 h2 > 0 genes"
## [1] "WholeBlood Tissue-Specific: 8504 h2 > 0.01 genes"
## [1] "WholeBlood Tissue-Specific: 2918 h2 > 0.05 genes"
## [1] "WholeBlood Tissue-Specific: 819 h2 > 0.1 genes"
## [1] "CrossTissue Tissue-Wide: 2938 non-zero h2 CI genes"
## [1] "CrossTissue Tissue-Wide: 17007 h2 > 0 genes"
## [1] "CrossTissue Tissue-Wide: 10282 h2 > 0.01 genes"
## [1] "CrossTissue Tissue-Wide: 5042 h2 > 0.05 genes"
## [1] "CrossTissue Tissue-Wide: 2715 h2 > 0.1 genes"
## [1] "AdiposeSubcutaneous Tissue-Wide: 1127 non-zero h2 CI genes"
## [1] "AdiposeSubcutaneous Tissue-Wide: 17007 h2 > 0 genes"
## [1] "AdiposeSubcutaneous Tissue-Wide: 6236 h2 > 0.01 genes"
## [1] "AdiposeSubcutaneous Tissue-Wide: 3407 h2 > 0.05 genes"
## [1] "AdiposeSubcutaneous Tissue-Wide: 1736 h2 > 0.1 genes"
## [1] "ArteryTibial Tissue-Wide: 1171 non-zero h2 CI genes"
## [1] "ArteryTibial Tissue-Wide: 17007 h2 > 0 genes"
## [1] "ArteryTibial Tissue-Wide: 6314 h2 > 0.01 genes"
## [1] "ArteryTibial Tissue-Wide: 3546 h2 > 0.05 genes"
## [1] "ArteryTibial Tissue-Wide: 1889 h2 > 0.1 genes"
## [1] "HeartLeftVentricle Tissue-Wide: 749 non-zero h2 CI genes"
## [1] "HeartLeftVentricle Tissue-Wide: 17007 h2 > 0 genes"
## [1] "HeartLeftVentricle Tissue-Wide: 6352 h2 > 0.01 genes"
## [1] "HeartLeftVentricle Tissue-Wide: 3865 h2 > 0.05 genes"
## [1] "HeartLeftVentricle Tissue-Wide: 2179 h2 > 0.1 genes"
## [1] "Lung Tissue-Wide: 929 non-zero h2 CI genes"
## [1] "Lung Tissue-Wide: 17007 h2 > 0 genes"
## [1] "Lung Tissue-Wide: 6331 h2 > 0.01 genes"
## [1] "Lung Tissue-Wide: 3387 h2 > 0.05 genes"
## [1] "Lung Tissue-Wide: 1693 h2 > 0.1 genes"
## [1] "MuscleSkeletal Tissue-Wide: 1063 non-zero h2 CI genes"
## [1] "MuscleSkeletal Tissue-Wide: 17007 h2 > 0 genes"
## [1] "MuscleSkeletal Tissue-Wide: 6049 h2 > 0.01 genes"
## [1] "MuscleSkeletal Tissue-Wide: 2814 h2 > 0.05 genes"
## [1] "MuscleSkeletal Tissue-Wide: 1331 h2 > 0.1 genes"
## [1] "NerveTibial Tissue-Wide: 1466 non-zero h2 CI genes"
## [1] "NerveTibial Tissue-Wide: 17006 h2 > 0 genes"
## [1] "NerveTibial Tissue-Wide: 6594 h2 > 0.01 genes"
## [1] "NerveTibial Tissue-Wide: 4057 h2 > 0.05 genes"
## [1] "NerveTibial Tissue-Wide: 2399 h2 > 0.1 genes"
## [1] "SkinSunExposed(Lowerleg) Tissue-Wide: 1198 non-zero h2 CI genes"
## [1] "SkinSunExposed(Lowerleg) Tissue-Wide: 17007 h2 > 0 genes"
## [1] "SkinSunExposed(Lowerleg) Tissue-Wide: 6504 h2 > 0.01 genes"
## [1] "SkinSunExposed(Lowerleg) Tissue-Wide: 3530 h2 > 0.05 genes"
## [1] "SkinSunExposed(Lowerleg) Tissue-Wide: 1809 h2 > 0.1 genes"
## [1] "Thyroid Tissue-Wide: 1327 non-zero h2 CI genes"
## [1] "Thyroid Tissue-Wide: 17006 h2 > 0 genes"
## [1] "Thyroid Tissue-Wide: 6590 h2 > 0.01 genes"
## [1] "Thyroid Tissue-Wide: 3758 h2 > 0.05 genes"
## [1] "Thyroid Tissue-Wide: 2082 h2 > 0.1 genes"
## [1] "WholeBlood Tissue-Wide: 945 non-zero h2 CI genes"
## [1] "WholeBlood Tissue-Wide: 17007 h2 > 0 genes"
## [1] "WholeBlood Tissue-Wide: 5426 h2 > 0.01 genes"
## [1] "WholeBlood Tissue-Wide: 2586 h2 > 0.05 genes"
## [1] "WholeBlood Tissue-Wide: 1261 h2 > 0.1 genes"
write(data$ensid, file=out.dir %&% "full_tested_ensid_list.txt",ncolumns=1)
Define known genes for 7 WTCCC diseases based on the GWAS catalog and make list of ALL genes in catalog
#catalog used:
gwasfile <- my.dir %&% 'gwas_catalog_v1.0-downloaded_2015-06-02.tsv'
# gwas <- data.frame(read.table(gwasfile,header=TRUE,sep='\t',quote="",comment.char="",as.is=TRUE)) #for reference
for(pthresh in c(5e-08,1e-05)){
runPERL <- "perl " %&% my.dir %&% "24_define_disease_genes.pl " %&% gwasfile %&% " " %&% pthresh
system(runPERL)
}
Disease gene enrichment in top h2 genes by tissue
lci<-function(x) quantile(x, c(.025, 0.975),na.rm=T)[[1]]
uci<-function(x) quantile(x, c(.025, 0.975),na.rm=T)[[2]]
##is testvec signficanty enriched for setvec? make n samples of size(testvec) from fullvec and count overlap
enrichment <- function(setvec, testvec, fullvec, nperms = 1000){
obs <- length(testvec[testvec %in% setvec])
counts <- vector()
for(i in 1:nperms){
rantest <- base::sample(fullvec,length(testvec),replace=FALSE)
cnt <- length(rantest[rantest %in% setvec])
counts <- c(counts,cnt)
}
empp <- mean(counts>obs)
meanc <- mean(counts)
lc <- lci(counts)
uc <- uci(counts)
return(c(obs,meanc,lc,uc,empp))
}
set.seed(42)
fullgenelist <- as.character(ts$AssociatedGeneName)
dislist <- c("BD","CAD","HT","T1D","T2D","CD","RA","ALL")
tislist <- scan(my.dir %&% 'GTEx_nine_tissues','c')
tislist <- gsub("-","",tislist)
tislist <- c("CrossTissue",tislist)
nperms <- 10000
for(gwasthresh in c(5e-08,1e-05)){
for(thresh in c("non-zeroCI","h2_0.1","h2_0.05","h2_0.01")){
results <- data.frame(type=character(0),dis=character(0),tis=character(0),obsOverlap=double(0),meanOverlap=double(0),lCI=double(0),uCI=double(0),empPval=double(0))
for(tistype in c("Tissue-Specific","Tissue-Wide")){
for(i in seq_along(dislist)){
dis <- dislist[i]
disgenes <- scan(out.dir %&% "gwas." %&% dis %&% "." %&% gwasthresh %&% ".tsv","character")
for(j in seq_along(tislist)){
tis <- tislist[j]
tisgenes <- scan(out.dir %&% tis %&% '_' %&% tistype %&% '_' %&% thresh %&% 'genes_gene_list.txt','character')
res <- enrichment(disgenes,tisgenes,fullgenelist,nperms=nperms)
resvec <- data.frame(type=tistype,dis=dis,tis=tis,obsOverlap=res[1],meanOverlap=res[2],lCI=res[3],uCI=res[4],empPval=res[5])
results <- rbind(results,resvec)
}
}
}
sortres <- arrange(results,empPval)
write.table(sortres,file=out.dir %&% "GWAS_catalog_disease_gene" %&% gwasthresh %&% "_enrichment_in_" %&% thresh %&% "_genes_by_tissue_" %&% nperms %&% "perms.txt",row.names=FALSE,quote=FALSE)
print("GWAS catalog disease gene enrichment in " %&% thresh %&% " genes by tissue " %&% nperms %&% " perms:")
print(head(sortres,n=20L))
}
}
distribution of h2 for disease vs non disease
dislist <- c("BD","CAD","HT","T1D","T2D","CD","RA","ALL")
tislist <- c("CrossTissue","AdiposeSubcutaneous","ArteryTibial","HeartLeftVentricle","Lung","MuscleSkeletal","NerveTibial","SkinSunExposed(Lowerleg)","Thyroid","WholeBlood")
typelist<-c("Tissue-Specific","Tissue-Wide")
#pdf(file="OTD_h2_plots.pdf")
for(thresh in c(0.1,0)){
for(tistype in typelist){
for(tis in tislist){
for(gwasthresh in c(5e-08,1e-05)){
info <- read.table(out.dir %&% tis %&% '_' %&% tistype %&% '_h2_' %&% thresh %&% 'genes_info.txt',header=T)
finaldf <- data.frame(AssociatedGeneName=character(0),EnsemblGeneID=character(0),h2=double(0),se=double(0),ensid=character(0),diseaseGene=logical(0L),disease=character(0))
for(dis in dislist){
setvec <- scan(out.dir %&% "gwas." %&% dis %&% "." %&% gwasthresh %&% ".tsv","character")
disinfo <- info %>% mutate(diseaseGene=(info[,1] %in% setvec),disease=dis)
colnames(disinfo) <- c("AssociatedGeneName","EnsemblGeneID","h2","se","ensid","diseaseGene","disease")
finaldf <- rbind(finaldf,disinfo)
}
p<-ggplot(finaldf,aes(x=finaldf[,3],fill=diseaseGene,color=diseaseGene)) + facet_wrap(~disease,ncol=2) + geom_density(alpha=0.3) + xlab("h2") + ggtitle(tistype %&% ' ' %&% tis %&% '\nh2 > ' %&% thresh %&% '; ' %&% 'GWAS P < ' %&% gwasthresh)
print(p)
p<-ggplot(finaldf,aes(y=finaldf[,3],x=diseaseGene)) + facet_wrap(~disease,ncol=4) + geom_jitter(aes(colour=diseaseGene),alpha=0.3,position = position_jitter(width = .15)) + geom_boxplot(alpha=0,outlier.size=NA) + xlab("diseaseGene") + ylab("h2") + ggtitle(tistype %&% ' ' %&% tis %&% '\nh2 > ' %&% thresh %&% '; ' %&% 'GWAS P < ' %&% gwasthresh) +theme_bw() + theme(legend.position="none")
print(p)
}
}
}
}
































































































































































#dev.off()